<%@ page import="java.util.ArrayList" %>
<%@ page import="java.nio.charset.StandardCharsets" %><%--
  Created by IntelliJ IDEA.
  User: 李学健
  Date: 2024/3/10
  Time: 12:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");

    String username = session.getAttribute("username").toString();
    String s = username + "说:" + request.getParameter("t") + "<br>";
    //如果还application还没有say这个列表对象
    if (application.getAttribute("say") == null) {
        //一开始出错了，我向say对象添加了一个字符串，而不是List.
        //后来又出错了，存进去了一个bool值，因为我使用了方法.add
        ArrayList<String> list = new ArrayList<>();
        list.add(s);
        application.setAttribute("say", list);
    } else //如果已经有了say这个列表对象
    {
        //首先取出来这个玩意
        ArrayList<String> list = (ArrayList<String>) application.getAttribute("say");
        //添加刚刚处理过的用户发言
        list.add(s);
        //在重新覆盖之前的say对象??
        application.setAttribute("say", list);
    }
    //但是解决方法可能不止我这一种，或许可以直接返回上一个index02页面，而不直接将参数写在url上面，在index02页面中使用session接收username并且显示出来


    //url如果直接写上去的话，中文会变成？？，解决方法：https://blog.csdn.net/weixin_44985880/article/details/108995452
    //具体来书就是用这个方法 java.net.URLEncoder.encode(XXX, StandardCharsets.UTF_8)
    response.sendRedirect("index02.jsp?username=" + java.net.URLEncoder.encode(username, StandardCharsets.UTF_8)
            + "&password=" + session.getAttribute("password"));


    //其他知识：out.write这个里面可以直接写html语言
    //out.write("<h1>sd</h1>");
%>

</body>
</html>
